(module binary
  "\00\61\73\6d\01\00\00\00\01\93\80\80\80\00\04\60"
  "\00\00\60\00\01\7f\60\01\7e\01\7e\60\02\7d\7d\01"
  "\7d\03\94\80\80\80\00\13\00\00\01\01\01\01\01\01"
  "\01\01\01\01\01\01\01\01\02\02\03\07\e3\81\80\80"
  "\00\12\05\65\6d\70\74\79\00\01\08\73\69\6e\67\75"
  "\6c\61\72\00\02\05\6d\75\6c\74\69\00\03\06\6e\65"
  "\73\74\65\64\00\04\04\64\65\65\70\00\05\10\61\73"
  "\2d\75\6e\61\72\79\2d\6f\70\65\72\61\6e\64\00\06"
  "\11\61\73\2d\62\69\6e\61\72\79\2d\6f\70\65\72\61"
  "\6e\64\00\07\0f\61\73\2d\74\65\73\74\2d\6f\70\65"
  "\72\61\6e\64\00\08\12\61\73\2d\63\6f\6d\70\61\72"
  "\65\2d\6f\70\65\72\61\6e\64\00\09\0a\62\72\65\61"
  "\6b\2d\62\61\72\65\00\0a\0b\62\72\65\61\6b\2d\76"
  "\61\6c\75\65\00\0b\0e\62\72\65\61\6b\2d\72\65\70"
  "\65\61\74\65\64\00\0c\0b\62\72\65\61\6b\2d\69\6e"
  "\6e\65\72\00\0d\0a\63\6f\6e\74\2d\69\6e\6e\65\72"
  "\00\0e\07\65\66\66\65\63\74\73\00\0f\05\77\68\69"
  "\6c\65\00\10\03\66\6f\72\00\11\07\6e\65\73\74\69"
  "\6e\67\00\12\0a\c7\86\80\80\00\13\82\80\80\80\00"
  "\00\0b\88\80\80\80\00\00\03\40\0b\03\40\0b\0b\8b"
  "\80\80\80\00\00\03\40\01\0b\03\7f\41\07\0b\0b\98"
  "\80\80\80\00\00\03\40\10\00\10\00\10\00\10\00\0b"
  "\03\7f\10\00\10\00\10\00\41\08\0b\0b\95\80\80\80"
  "\00\00\03\7f\03\40\10\00\02\40\0b\01\0b\03\7f\10"
  "\00\41\09\0b\0b\0b\ff\80\80\80\00\00\03\7f\02\7f"
  "\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f"
  "\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f"
  "\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f"
  "\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f"
  "\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f\10\00\41\96"
  "\01\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b"
  "\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b"
  "\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\8a\80\80\80\00\00"
  "\03\7f\10\00\41\0d\0b\68\0b\91\80\80\80\00\00\03"
  "\7f\10\00\41\03\0b\03\7f\10\00\41\04\0b\6c\0b\8a"
  "\80\80\80\00\00\03\7f\10\00\41\0d\0b\45\0b\97\80"
  "\80\80\00\00\03\7d\10\00\43\00\00\40\40\0b\03\7d"
  "\10\00\43\00\00\40\40\0b\5e\0b\b4\80\80\80\00\00"
  "\02\40\03\40\0c\01\0c\00\00\0b\0b\02\40\03\40\41"
  "\01\0d\01\00\0b\0b\02\40\03\40\41\00\0e\00\01\00"
  "\0b\0b\02\40\03\40\41\01\0e\02\01\01\01\00\0b\0b"
  "\41\13\0b\90\80\80\80\00\00\02\7f\03\7f\41\12\0c"
  "\01\0c\00\41\13\0b\0b\0b\b4\80\80\80\00\00\02\7f"
  "\03\7f\41\12\0c\01\41\13\0c\01\41\14\41\00\0d\01"
  "\1a\41\14\41\01\0d\01\1a\41\15\0c\01\41\16\41\00"
  "\0e\00\01\41\17\41\01\0e\02\01\01\01\41\15\0b\0b"
  "\0b\e6\80\80\80\00\01\01\7f\41\00\21\00\20\00\02"
  "\7f\03\7f\02\7f\41\01\0c\02\0b\0b\0b\6a\21\00\20"
  "\00\02\7f\03\7f\03\7f\41\02\0c\02\0b\0b\0b\6a\21"
  "\00\20\00\02\7f\03\7f\02\7f\03\7f\41\04\0c\01\0b"
  "\0b\0b\0b\6a\21\00\20\00\02\7f\03\7f\41\08\0c\01"
  "\68\0b\0b\6a\21\00\20\00\02\7f\03\7f\03\7f\41\10"
  "\0c\02\0b\68\0b\0b\6a\21\00\20\00\0b\b0\80\80\80"
  "\00\01\01\7f\41\00\21\00\20\00\03\7f\03\7f\0c\01"
  "\0b\0b\6a\21\00\20\00\03\7f\0c\00\68\0b\6a\21\00"
  "\20\00\03\7f\03\7f\0c\01\0b\68\0b\6a\21\00\20\00"
  "\0b\b2\80\80\80\00\01\01\7f\02\40\03\40\41\01\21"
  "\00\20\00\41\03\6c\21\00\20\00\41\05\6b\21\00\20"
  "\00\41\07\6c\21\00\0c\01\20\00\41\e4\00\6c\21\00"
  "\0b\0b\20\00\41\72\46\0b\a5\80\80\80\00\01\01\7e"
  "\42\01\21\01\02\40\03\40\20\00\50\0d\01\20\00\20"
  "\01\7e\21\01\20\00\42\01\7d\21\00\0c\00\0b\0b\20"
  "\01\0b\ab\80\80\80\00\01\02\7e\42\01\21\01\42\02"
  "\21\02\02\40\03\40\20\02\20\00\56\0d\01\20\01\20"
  "\02\7e\21\01\20\02\42\01\7c\21\02\0c\00\0b\0b\20"
  "\01\0b\da\80\80\80\00\01\02\7d\02\40\03\40\20\00"
  "\43\00\00\00\00\5b\0d\01\20\01\21\02\02\40\03\40"
  "\20\02\43\00\00\00\00\5b\0d\01\20\02\43\00\00\00"
  "\00\5d\0d\03\20\03\20\02\92\21\03\20\02\43\00\00"
  "\00\40\93\21\02\0c\00\0b\0b\20\03\20\00\95\21\03"
  "\20\00\43\00\00\80\3f\93\21\00\0c\00\0b\0b\20\03"
  "\0b"
)
(assert_return (invoke "empty"))
(assert_return (invoke "singular") (i32.const 7))
(assert_return (invoke "multi") (i32.const 8))
(assert_return (invoke "nested") (i32.const 9))
(assert_return (invoke "deep") (i32.const 150))
(assert_return (invoke "as-unary-operand") (i32.const 0))
(assert_return (invoke "as-binary-operand") (i32.const 12))
(assert_return (invoke "as-test-operand") (i32.const 0))
(assert_return (invoke "as-compare-operand") (i32.const 0))
(assert_return (invoke "break-bare") (i32.const 19))
(assert_return (invoke "break-value") (i32.const 18))
(assert_return (invoke "break-repeated") (i32.const 18))
(assert_return (invoke "break-inner") (i32.const 31))
(assert_return (invoke "effects") (i32.const 1))
(assert_return (invoke "while" (i64.const 0)) (i64.const 1))
(assert_return (invoke "while" (i64.const 1)) (i64.const 1))
(assert_return (invoke "while" (i64.const 2)) (i64.const 2))
(assert_return (invoke "while" (i64.const 3)) (i64.const 6))
(assert_return (invoke "while" (i64.const 5)) (i64.const 120))
(assert_return (invoke "while" (i64.const 20)) (i64.const 2432902008176640000))
(assert_return (invoke "for" (i64.const 0)) (i64.const 1))
(assert_return (invoke "for" (i64.const 1)) (i64.const 1))
(assert_return (invoke "for" (i64.const 2)) (i64.const 2))
(assert_return (invoke "for" (i64.const 3)) (i64.const 6))
(assert_return (invoke "for" (i64.const 5)) (i64.const 120))
(assert_return (invoke "for" (i64.const 20)) (i64.const 2432902008176640000))
(assert_return
  (invoke "nesting" (f32.const 0x0p+0) (f32.const 0x1.cp+2))
  (f32.const 0x0p+0)
)
(assert_return
  (invoke "nesting" (f32.const 0x1.cp+2) (f32.const 0x0p+0))
  (f32.const 0x0p+0)
)
(assert_return
  (invoke "nesting" (f32.const 0x1p+0) (f32.const 0x1p+0))
  (f32.const 0x1p+0)
)
(assert_return
  (invoke "nesting" (f32.const 0x1p+0) (f32.const 0x1p+1))
  (f32.const 0x1p+1)
)
(assert_return
  (invoke "nesting" (f32.const 0x1p+0) (f32.const 0x1.8p+1))
  (f32.const 0x1p+2)
)
(assert_return
  (invoke "nesting" (f32.const 0x1p+0) (f32.const 0x1p+2))
  (f32.const 0x1.8p+2)
)
(assert_return
  (invoke "nesting" (f32.const 0x1p+0) (f32.const 0x1.9p+6))
  (f32.const 0x1.3ecp+11)
)
(assert_return
  (invoke "nesting" (f32.const 0x1p+0) (f32.const 0x1.94p+6))
  (f32.const 0x1.452p+11)
)
(assert_return
  (invoke "nesting" (f32.const 0x1p+1) (f32.const 0x1p+0))
  (f32.const 0x1p+0)
)
(assert_return
  (invoke "nesting" (f32.const 0x1.8p+1) (f32.const 0x1p+0))
  (f32.const 0x1p+0)
)
(assert_return
  (invoke "nesting" (f32.const 0x1.4p+3) (f32.const 0x1p+0))
  (f32.const 0x1p+0)
)
(assert_return
  (invoke "nesting" (f32.const 0x1p+1) (f32.const 0x1p+1))
  (f32.const 0x1.8p+1)
)
(assert_return
  (invoke "nesting" (f32.const 0x1p+1) (f32.const 0x1.8p+1))
  (f32.const 0x1p+2)
)
(assert_return
  (invoke "nesting" (f32.const 0x1.cp+2) (f32.const 0x1p+2))
  (f32.const 0x1.49e79ep+3)
)
(assert_return
  (invoke "nesting" (f32.const 0x1.cp+2) (f32.const 0x1.9p+6))
  (f32.const 0x1.11d8c4p+12)
)
(assert_return
  (invoke "nesting" (f32.const 0x1.cp+2) (f32.const 0x1.94p+6))
  (f32.const 0x1.452p+11)
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\8b\80\80\80"
    "\00\01\85\80\80\80\00\00\03\40\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7e\03\82\80\80\80\00\01\00\0a\8b\80\80\80"
    "\00\01\85\80\80\80\00\00\03\40\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7d\03\82\80\80\80\00\01\00\0a\8b\80\80\80"
    "\00\01\85\80\80\80\00\00\03\40\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7c\03\82\80\80\80\00\01\00\0a\8b\80\80\80"
    "\00\01\85\80\80\80\00\00\03\40\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\84\80\80\80\00\01\60"
    "\00\00\03\82\80\80\80\00\01\00\0a\8d\80\80\80\00"
    "\01\87\80\80\80\00\00\03\40\41\01\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\8b\80\80\80"
    "\00\01\85\80\80\80\00\00\03\7f\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\8c\80\80\80"
    "\00\01\86\80\80\80\00\00\03\7f\01\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\90\80\80\80"
    "\00\01\8a\80\80\80\00\00\03\7f\43\00\00\00\00\0b"
    "\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\8f\80\80\80"
    "\00\01\89\80\80\80\00\00\03\7e\00\00\00\1b\0b\0b"
  )
  "type mismatch"
)
(assert_malformed (module quote "(func loop end $l)") "mismatching label")
(assert_malformed (module quote "(func loop $a end $l)") "mismatching label")
